As known, a virtual machine (VM) is a software implementation or emulation of a machine (for example, a computer) that executes programs like a physical machine. For example, a VM may provide a complete system platform which supports execution of an operating system (OS) which may be referred to as “base OS.”
After a VM is deployed, it is sometimes necessary to upgrade the base OS of the VM.
Conventionally, this upgrading of the base OS of the VM can be done by duplicating data of the VM itself, deleting the VM, creating a new VM with a new OS image, and then copying the duplicated data of the VM itself back to the newly created VM.
The preceding conventional process needs considerable resources such as network resources, storage resources, and the like. Resource consumption will be further increased if deletion of the VM does not immediately release all the resources allocated to the VM due to system maintenance or billing policy. For those environments like cloud platforms including a great number of VMs, such conventional upgrade of an OS image will significantly degrade system performance. Moreover, the failure of the VM OS upgrade would be very dangerous and even bring down the entire system if VMs for key components of the system cannot be correctly recreated.